Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

MCA OpenVPN installieren! Wie?

blindflug

Newbie
Registriert
17. August 2009
Beiträge
9
Reaktionspunkte
0
Punkte
21
Hallo Leute,


Habe mir jetzt ein MCA zugelegt. Das MCA hat als Frimware Link ist nicht mehr aktiv. draufbekommen.
Es Läuft soweit ganz gut. Danke an die Ersteller!

Ich möchte gerne jetzt OpenVPN noch darauf installieren.

1. Wie mach ich das?

Verbinden mit Telnet?

z.B.: 1- apt-get install openvpn

2. Woher Openvpn?

Danke schonmal im Voraus
 
AW: MCA OpenVPN installieren! Wie?

Hallo blindflug,

Das wird so nicht funktionieren, das MCA hat keinen Paketmanager.
Du wirst openvpn selber kompilieren müssen.

dirtyharry123
 
AW: MCA OpenVPN installieren! Wie?

PHUUU

und wie mach ich das beim MCA?

1- Bibliotheken + GCC installieren (+download)
2- source OpenVPN
3- configure...
4- make

Oder geht es auch auf einer anderen Umgebung mit Cgwin?


Habe so was schon mal mit der Oscam gemacht für'n Linux-PC.

Blindflug
 
AW: MCA OpenVPN installieren! Wie?

hi blindflug,

so einfach geht dies nicht. Wie gut sind deine Linuxkenntnisse und sagen dir die Begriffe "Cross compiler" und "toolchain" etwas?

Für den Anfang brauchst du eine Compiler Umgebung. Dazu nutze ich das "freetz-linux" in einer VM. Dann eine "passende" Toolchain.
Wichtig dabei ist, das die Toolchain zum vorhandenen Kernel passt (u.a. gcc - Version) da du auch Kernelmodule bauen musst! (tun.ko)
Eine alte Kernelconfig ist auch hilfreich - vereinfacht die Konfiguration der zusätzlichen Kernelmodule.

Wenn du die Kernelmodule lauffähig hast - dann erst gehts an's bauen der Anwendung.

"simplebuild" für Oscam hat die Toolchain von dirtyharry.
Ich kann dir aber nicht sagen ob du damit auch die passenden Kernelmodule bauen kannst. (version von gcc, glibc)

kasimodo
 
AW: MCA OpenVPN installieren! Wie?

Ja, hab ich schon mal gehört und auch mal probiert aber war damals nicht vom Erfolg gekrönt.
Einwenig Kenntnisse habe ich.

Werde ich wohl noch nicht schaffen.

Sollten sich mal mehere Zusammen schließen und versuchen OPENVPN zu bauen.

Im Moment habe ich wenig Zeit.

Grüße Blindflug
 
AW: MCA OpenVPN installieren! Wie?

openvpn auf dem mca wäre ne feine sache!

hab folgendes gefunden, vlt kommst du damit schon weiter:

Da kann man wohl anscheinend auch direkt für arm kompilieren.
Ich habe auch nicht wirklich viel ahnung von crosscompiling und leider momentan auch wenig zeit sonst würde ich es selber mal in einer VM testen.
 
AW: MCA OpenVPN installieren! Wie?

Hallo vdrschlucke,

das ist doch schon mal was juts zum ausprobieren.


Leider wie gesagt zu wenig Zeit!


Grüße Blindflug
 
AW: MCA OpenVPN installieren! Wie?

hi,

ihr wisst was ihr neben openvpn an libs und K-modules benötigt?

kennt jemand die config vom vorhandenen Kernel?

ihr kennt euch mit der konfiguration von openvpn aus?
Ich nicht so sehr!

Aber hier mal die "vpn_openvpn.sh" von meinem NAS - da kann man sehen was in etwa so dazu gehört.

#!/bin/sh

OPENVPN=/usr/sbin/openvpn
PIDFILE="/var/run/openvpn.server.pid"
OPENVPN_CONF="/etc/openvpn/server.conf"
OPENVPN_CONF_PATH="/etc/openvpn"
OPENVPN_CA_FILE="/etc/openvpn/easy-rsa/keys/ca.crt"
VPN_CONF="/etc/config/vpn.conf"
VPN_OPENVPN_CONF_PATH="/etc/config/openvpn"
VPN_ONLINE_LOG="/var/log/openvpn_online_user.log"
NIC_NUM=`/sbin/getcfg "Network" "Interface Number" -d "2"`

use_source_route_for_openvpn()
{
TUN_DEV="tun0"
TUN_IP_ADDR="$(ifconfig ${TUN_DEV} 2> /dev/null | sed -n '/inet /{s/.*addr://;s/ .*//;p}')"
TUN_SUBNET=`grep "^server" ${OPENVPN_CONF} | cut -d' ' -f 2`

for LAN_PREFIX in eth bond
do
for (( i=0; i<$NIC_NUM; i=i+1 ))
do
case "$LAN_PREFIX" in
eth)
let ROUTE_TBL=$i+1
;;
bond)
let ROUTE_TBL=$i+11
;;
esac
LAN=$LAN_PREFIX$i
IP_ADDR="$(ifconfig $LAN 2> /dev/null | sed -n '/inet /{s/.*addr://;s/ .*//;p}')"
if [ x$IP_ADDR != "x" ]; then
/bin/ip route add $TUN_SUBNET/24 via $TUN_IP_ADDR dev ${TUN_DEV} tab $ROUTE_TBL &> /dev/null
fi
done
done
/bin/ip route flush cache
}

init_modules()
{
/bin/echo "init insmod for openvpn"
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/insmod /lib/modules/others/tun.ko 1>>/dev/null 2>&1
if [ ! -L /usr/sbin/vpn_check_account ]; then
/bin/ln -sf /sbin/nasutil /usr/sbin/vpn_check_account
fi
if [ ! -L /usr/sbin/vpn_openvpn_download ]; then
/bin/ln -sf /sbin/nasutil /usr/sbin/vpn_openvpn_download
fi
}

init_iptable_modules()
{
[ -L /usr/lib/libxtables.so.7 ] || /bin/ln -sf /usr/lib/libxtables.so.7.0.0 /usr/lib/libxtables.so.7
[ -L /usr/lib/libxtables.so ] || /bin/ln -sf /usr/lib/libxtables.so.7.0.0 /usr/lib/libxtables.so
[ -L /usr/lib/libip4tc.so.0 ] || /bin/ln -sf /usr/lib/libip4tc.so.0.0.0 /usr/lib/libip4tc.so.0
[ -L /usr/lib/libip4tc.so ] || /bin/ln -sf /usr/lib/libip4tc.so.0.0.0 /usr/lib/libip4tc.so
[ -L /usr/lib/libip6tc.so.0 ] || /bin/ln -sf /usr/lib/libip6tc.so.0.0.0 /usr/lib/libip6tc.so.0
[ -L /usr/lib/libip6tc.so ] || /bin/ln -sf /usr/lib/libip6tc.so.0.0.0 /usr/lib/libip6tc.so
/sbin/lsmod | grep x_tables 1>>/dev/null 2>>/dev/null
if [ $? != 0 ]; then
/bin/echo "insmod iptable modules"
for i in x_tables.ko nf_conntrack.ko xt_tcpudp.ko nf_defrag_ipv4.ko nf_conntrack_ipv4.ko nf_nat.ko \
ip_tables.ko iptable_nat.ko iptable_filter.ko ipt_MASQUERADE.ko ipt_REDIRECT.ko
do
[ ! -f /lib/modules/others/vpn/$i ] || /sbin/insmod /lib/modules/others/vpn/$i
done
fi
}


remove_iptable_modules()
{
for i in ipt_REDIRECT ipt_MASQUERADE iptable_filter iptable_nat ip_tables nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 \
xt_tcpudp nf_conntrack x_tables
do
/sbin/rmmod $i
done
}

init_vars()
{
/bin/rm -rf ${OPENVPN_CONF_PATH}/easy-rsa/vars
/bin/touch ${OPENVPN_CONF_PATH}/easy-rsa/vars
cat >${OPENVPN_CONF_PATH}/easy-rsa/vars <<__EOF__
export EASY_RSA="\`pwd\`"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
export KEY_CONFIG=\`\$EASY_RSA/whichopensslcnf \$EASY_RSA\`
export KEY_DIR="\$EASY_RSA/keys"
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
export KEY_SIZE=1024
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY="TW"
export KEY_PROVINCE="Taiwan"
export KEY_CITY="Taipei"
export KEY_ORG="QNAP Systems Inc."
export KEY_EMAIL="admin@qnap.com"
export KEY_CN="TS Series NAS"
export KEY_NAME="NAS"
export KEY_OU="NAS"
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234
__EOF__

/bin/chmod 755 ${OPENVPN_CONF_PATH}/easy-rsa/vars

}


init()
{
/bin/echo "openvpn init."
if [ ! -L /etc/rcK.d/K48vpn_openvpn ]; then
/bin/ln -sf ../init.d/vpn_openvpn.sh /etc/rcK.d/K48vpn_openvpn
fi
/sbin/vpn_util init_openvpn
sleep 1
/sbin/vpn_util init_client
sleep 1
/sbin/vpn_util init_readme
sleep 1

/bin/rm ${OPENVPN_CONF_PATH}/connect.sh
/bin/ln -sf /sbin/nasutil ${OPENVPN_CONF_PATH}/connect.sh
/bin/rm ${OPENVPN_CONF_PATH}/disconnect.sh
/bin/ln -sf /sbin/nasutil ${OPENVPN_CONF_PATH}/disconnect.sh
/bin/rm ${OPENVPN_CONF_PATH}/kick.sh
/bin/ln -sf /sbin/nasutil ${OPENVPN_CONF_PATH}/kick.sh

/bin/rm -rf /etc/openvpn/keys

if [ -d ${VPN_OPENVPN_CONF_PATH} ]; then
ADMIN_NAME=`grep "Subject: C=TW" ${VPN_OPENVPN_CONF_PATH}/keys/myserver.crt | cut -d= -f 9`
if [ "${ADMIN_NAME}" == "peterlai@qnap.com" ]; then
/bin/rm -rf ${VPN_OPENVPN_CONF_PATH}
sleep 1
fi
fi

if [ ! -d ${VPN_OPENVPN_CONF_PATH} ]; then
/bin/mkdir -p /etc/config/openvpn/keys
init_vars
sleep 1
cd /etc/openvpn/easy-rsa
source /etc/openvpn/easy-rsa/vars 1>>/dev/null 2>&1
/etc/openvpn/easy-rsa/clean-all 1>>/dev/null 2>&1
sleep 1
/etc/openvpn/easy-rsa/build-dh 1>>/dev/null 2>&1
sleep 80
/etc/openvpn/easy-rsa/pkitool --initca 1>>/dev/null 2>&1
sleep 1
/etc/openvpn/easy-rsa/pkitool --server myserver 1>>/dev/null 2>&1
sleep 1

if [ ! -f ${OPENVPN_CA_FILE} ]; then
sleep 80
if [ -f ${OPENVPN_CA_FILE} ]; then
/bin/cp -rf /etc/openvpn/easy-rsa/keys /etc/config/openvpn
/bin/ln -sf /etc/config/openvpn/keys /etc/openvpn/keys
else
sleep 100
if [ -f ${OPENVPN_CA_FILE} ]; then
/bin/cp -rf /etc/openvpn/easy-rsa/keys /etc/config/openvpn
/bin/ln -sf /etc/config/openvpn/keys /etc/openvpn/keys
else
/bin/echo "openvpn init ${OPENVPN_CA_FILE} ERROR !." >/var/log/err_openvpn_ca.txt
fi
fi
else
/bin/cp -rf /etc/openvpn/easy-rsa/keys /etc/config/openvpn
/bin/ln -sf /etc/config/openvpn/keys /etc/openvpn/keys
fi
else
if [ -f /etc/config/openvpn/keys/ca.crt ]; then
/bin/ln -sf /etc/config/openvpn/keys /etc/openvpn/keys
else
init_vars
sleep 1
cd /etc/openvpn/easy-rsa
source /etc/openvpn/easy-rsa/vars 1>>/dev/null 2>&1
/etc/openvpn/easy-rsa/clean-all 1>>/dev/null 2>&1
sleep 1
/etc/openvpn/easy-rsa/build-dh 1>>/dev/null 2>&1
sleep 60
/etc/openvpn/easy-rsa/pkitool --initca 1>>/dev/null 2>&1
sleep 1
/etc/openvpn/easy-rsa/pkitool --server myserver 1>>/dev/null 2>&1
sleep 1

if [ ! -f ${OPENVPN_CA_FILE} ]; then
sleep 80
if [ -f ${OPENVPN_CA_FILE} ]; then
/bin/cp -rf /etc/openvpn/easy-rsa/keys /etc/config/openvpn
/bin/ln -sf /etc/config/openvpn/keys /etc/openvpn/keys
else
sleep 100
if [ -f ${OPENVPN_CA_FILE} ]; then
/bin/cp -rf /etc/openvpn/easy-rsa/keys /etc/config/openvpn
/bin/ln -sf /etc/config/openvpn/keys /etc/openvpn/keys
else
/bin/echo "openvpn init ${OPENVPN_CA_FILE} ERROR !." >/var/log/err_openvpn_ca.txt
fi
fi
else
/bin/cp -rf /etc/openvpn/easy-rsa/keys /etc/config/openvpn
/bin/ln -sf /etc/config/openvpn/keys /etc/openvpn/keys
fi
fi
fi

/bin/echo "openvpn init OK !."
}

start()
{
if [ ! -f ${OPENVPN} ]; then
/bin/echo "openvpn is not exit."
exit 1
fi

if [ -f ${PIDFILE} ]; then
/bin/echo "openvpn is aleady run."
exit 1
fi

sleep 1

init

if [ `/sbin/getcfg "OPENVPN" "Enable" -u -d "FALSE" -f "${VPN_CONF}"` = "TRUE" ]; then
/bin/echo "openvpn start."

init_modules
sleep 1
init_iptable_modules

/usr/bin/killall openvpn 1>>/dev/null 2>&1

if [ -f ${VPN_ONLINE_LOG} ]; then
/bin/rm ${VPN_ONLINE_LOG}
fi
sleep 1

/sbin/daemon_mgr openvpn start "${OPENVPN} --writepid ${PIDFILE} --daemon ovpn-server --cd ${OPENVPN_CONF_PATH} --config ${OPENVPN_CONF} --script-security 3"

LOCALIP=`grep "^server" ${OPENVPN_CONF} | cut -d' ' -f 2`
INTERFACE=`/sbin/getcfg "OPENVPN" "interface" -d "eth0" -f "${VPN_CONF}"`
/bin/echo "LOCALIP = ${LOCALIP} INTERFACE = ${INTERFACE}"
/sbin/iptables -t nat -A POSTROUTING -s ${LOCALIP}/24 -o ${INTERFACE} -j MASQUERADE
use_source_route_for_openvpn
else
/bin/echo "openvpn is disabled."
fi

}

stop()
{
/bin/echo "openvpn stop."
LOCALIP=`grep "^server" ${OPENVPN_CONF} | cut -d' ' -f 2`
INTERFACE=`/sbin/getcfg "OPENVPN" "interface" -d "eth0" -f "${VPN_CONF}"`
/bin/echo "LOCALIP = ${LOCALIP} INTERFACE = ${INTERFACE}"
/sbin/iptables -t nat -D POSTROUTING -s ${LOCALIP}/24 -o ${INTERFACE} -j MASQUERADE


if [ -f ${PIDFILE} ]; then
/sbin/daemon_mgr openvpn stop "{OPENVPN}"
/bin/kill -9 `/bin/cat ${PIDFILE}` 1>>/dev/null 2>&1
fi

if [ -f ${PIDFILE} ]; then
/bin/rm -f ${PIDFILE} 1>>/dev/null 2>&1
fi

if [ -f ${VPN_ONLINE_LOG} ]; then
/bin/rm -f ${VPN_ONLINE_LOG} 1>>/dev/null 2>&1
/bin/touch ${VPN_ONLINE_LOG}
fi

sleep 2
/sbin/rmmod tun 1>>/dev/null 2>&1
}

reload()
{
/bin/echo "openvpn reload."
LOCALIP=`grep "^server" ${OPENVPN_CONF} | cut -d' ' -f 2`
INTERFACE=`/sbin/getcfg "OPENVPN" "interface" -d "eth0" -f "${VPN_CONF}"`
/bin/echo "LOCALIP = ${LOCALIP} INTERFACE = ${INTERFACE}"
/sbin/iptables -t nat -D POSTROUTING -s ${LOCALIP}/24 -o ${INTERFACE} -j MASQUERADE
if [ -f ${PIDFILE} ]; then
/bin/kill -s HUP `/bin/cat ${PIDFILE}` 1>>/dev/null 2>&1
fi

LOCALIP=`grep "^server" ${OPENVPN_CONF} | cut -d' ' -f 2`
INTERFACE=`/sbin/getcfg "OPENVPN" "interface" -d "eth0" -f "${VPN_CONF}"`
/bin/echo "LOCALIP = ${LOCALIP} INTERFACE = ${INTERFACE}"
/sbin/iptables -t nat -A POSTROUTING -s ${LOCALIP}/24 -o ${INTERFACE} -j MASQUERADE
use_source_route_for_openvpn
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
/bin/sleep 2
start
;;
init)
init
;;
reload)
reload
;;
*)
echo "Usage: /etc/init.d/$0 {start|stop|restart|reload}"
exit 1
esac

exit 0


Wer von uns Laien soll das alles hinbekommen? :read:
Da können wohl nur die Experten helfen! -> Lieber nicht!!!
Deren Zeit wird für Forschung und Entwicklung am MCA dringender benötigt! :drinks:
 
AW: MCA OpenVPN installieren! Wie?

libcrypto und libssl dürften die benötigten libs sein.
benötigt wird eigentlich "nur" das openvpn binary und das tun.ko modul.
Zeitsyncronisation findet ja schon statt.

hier mal ein startskript für nen client:
#!/bin/sh

PLUGINDIR=/root/plugin/var
# loading missing tun.ko device driver
insmod $PLUGINDIR/lib/modules/tun.ko

# create required device nodes..
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun

# fetching network time
$PLUGINDIR/usr/bin/ntpclient -s -h 0.de.pool.ntp.org

# starting OPENVPN Service
ln -s $PLUGINDIR/etc/openvpn /etc/openvpn
ln -s $PLUGINDIR/usr/bin/openvpn /usr/bin/

cd /etc/openvpn;openvpn --config openvpn.conf
wie gesagt time sync ist ja schon vorhanden.

ob die libs da sind, könnte man so testen:
[root@stlinux]#find / -name "libcrypto*"
/lib/libcrypto.so.0
/root/spark/lib/libcrypto.so.0.9.8
/root/spark/lib/libcrypto.so
/usr/lib/libcrypto.so
/usr/lib/libcrypto.so.0.9.8
[root@stlinux]#find / -name "libss*"
/root/spark/lib/libssl.so
/root/spark/lib/libssl.so.0.9.8
/usr/lib/libssl.so
/usr/lib/libssl.so.0.9.8
[root@stlinux]#find / -name "liblz*"

[/url]
 
Zuletzt bearbeitet:
AW: MCA OpenVPN installieren! Wie?

Ich habe gerade nachteschaut es ist nur die "libcrypto.so.6" im Linux schon vorhanden
Code:
[root@mca /root]# find / -name "libcrypto*"
/lib/libcrypto.so.6
 
AW: MCA OpenVPN installieren! Wie?

Hallo,

dank kasi45 gibt es einen Kernel der den tun Treiber unterstützt.

Link ist nicht mehr aktiv.


Von der Debian Seite habe ich das Paket: openvpn (2.1.3-2+squeeze2) für Arm runtergeladen.
Die openvpn_2.1.3-2+squeeze2_armel.deb im Linux auspacken
(ar -x openvpn_2.1.3-2+squeeze2_armel.deb) und die data.tar im MCA Stammverzeichnis auspacken(tar -xzf data.tar.gz).

Nach dem Starten von openvpn werden die abhängigen Pakete angezeigt
(libpkcs11-helper1; libssl0.9.8; libc6)
die ebenfalls auf der Debian für Arm mit angeboten werden (auspacken und das data.tar im Stammverzeichnis des MCA auspacken).

# create required device nodes.
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun

Danach ins /etc/openvpn die configs für openvpn.

jetzt kann schon mal openvpen gestartet werden: openvp -config /etc/openvpn/XXXX.conf

Für das automatische Starten die Datei /etc/init.d/openvpn mit den roten Änderungen anpassen.
#!/bin/sh -e

### BEGIN INIT INFO
# Provides: openvpn
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network $remote_fs $syslog
# Should-Start: network-manager
# Should-Stop: network-manager
# X-Start-Before: $x-display-manager gdm kdm xdm wdm ldm sdm nodm
# X-Interactive: true
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Openvpn VPN service
### END INIT INFO

# Original version by Robert Leslie
# <rob@mars.org>, edited by iwj and cs
# Modified for openvpn by Alberto Gonzalez Iniesta <agi@inittab.org>
# Modified for restarting / starting / stopping single tunnels by Richard Mueller <mueller@teamix.net>

#. /lib/lsb/init-functions

test $DEBIAN_SCRIPT_DEBUG && set -v -x

DAEMON=/usr/sbin/openvpn
DESC="virtual private network daemon"
CONFIG_DIR=/etc/openvpn
test -x $DAEMON || exit 0
test -d $CONFIG_DIR || exit 0

# Source defaults file; edit that file to configure this script.
AUTOSTART="all"
STATUSREFRESH=10
if test -e /etc/default/openvpn ; then
. /etc/default/openvpn
fi

start_vpn () {

if test -e /dev/net; then
echo "/dev/net exists"
else
echo "/dev/net not exists"
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
fi
chmod 600 /dev/net/tun




if grep -q '^[ ]*daemon' $CONFIG_DIR/$NAME.conf ; then
# daemon already given in config file
DAEMONARG=
else
# need to daemonize
DAEMONARG="--daemon ovpn-$NAME"
fi

if grep -q '^[ ]*status ' $CONFIG_DIR/$NAME.conf ; then
# status file already given in config file
STATUSARG=""
elif test $STATUSREFRESH -eq 0 ; then
# default status file disabled in /etc/default/openvpn
STATUSARG=""
else
# prepare default status file
STATUSARG="--status /var/run/openvpn.$NAME.status $STATUSREFRESH"
fi

echo "$NAME"
STATUS=0

start-stop-daemon --start --quiet --oknodo \
--pidfile /var/run/openvpn.$NAME.pid \
--exec $DAEMON -- $OPTARGS --writepid /var/run/openvpn.$NAME.pid \
$DAEMONARG $STATUSARG --cd $CONFIG_DIR \
--config $CONFIG_DIR/$NAME.conf || STATUS=1
}
stop_vpn () {
kill `cat $PIDFILE` || true
rm -f $PIDFILE
rm -f /var/run/openvpn.$NAME.status 2> /dev/null
}

case "$1" in
start)
echo "Starting $DESC"

# autostart VPNs
if test -z "$2" ; then
# check if automatic startup is disabled by AUTOSTART=none
if test "x$AUTOSTART" = "xnone" -o -z "$AUTOSTART" ; then
echo " Autostart disabled."
exit 0
fi
if test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
# all VPNs shall be started automatically
for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
NAME=${CONFIG%%.conf}
start_vpn
done
else
# start only specified VPNs
for NAME in $AUTOSTART ; do
if test -e $CONFIG_DIR/$NAME.conf ; then
start_vpn
else
echo "No such VPN: $NAME"
STATUS=1
fi
done
fi
#start VPNs from command line
else
while shift ; do
[ -z "$1" ] && break
if test -e $CONFIG_DIR/$1.conf ; then
NAME=$1
start_vpn
else
echo " No such VPN: $1"
STATUS=1
fi
done
fi
echo ${STATUS:-0}

;;
stop)
echo "Stopping $DESC"

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 "$NAME"
done
else
while shift ; do
[ -z "$1" ] && break
if test -e /var/run/openvpn.$1.pid ; then
PIDFILE=`ls /var/run/openvpn.$1.pid 2> /dev/null`
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
stop_vpn
echo "$NAME"
else
echo " (failure: No such VPN is running: $1)"
fi
done
fi
echo 0
;;
# Only 'reload' running VPNs. New ones will only start with 'start' or 'restart'.
reload|force-reload)
echo "Reloading $DESC"
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 '^[[:blank:]]*user[[:blank:]]' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then
stop_vpn
sleep 1
start_vpn
echo "(restarted)"
else
kill -HUP `cat $PIDFILE` || true
echo "$NAME"
fi
done
echo 0
;;

# Only 'soft-restart' running VPNs. New ones will only start with 'start' or 'restart'.
soft-restart)
echo "$DESC sending SIGUSR1"
for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
kill -USR1 `cat $PIDFILE` || true
echo "$NAME"
done
echo 0
;;

restart)
shift
$0 stop ${@}
sleep 1
$0 start ${@}
;;
cond-restart)
echo "Restarting $DESC."
for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
stop_vpn
sleep 1
start_vpn
done
echo 0
;;
status)
GLOBAL_STATUS=0
if test -z "$2" ; then
# We want status for all defined VPNs.
# Returns success if all autostarted VPNs are defined and running
if test "x$AUTOSTART" = "xnone" ; then
# Consider it a failure if AUTOSTART=none
echo "No VPN autostarted"
GLOBAL_STATUS=1
else
if ! test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
# Consider it a failure if one of the autostarted VPN is not defined
for VPN in $AUTOSTART ; do
if ! test -f $CONFIG_DIR/$VPN.conf ; then
echo "VPN '$VPN' is in AUTOSTART but is not defined"
GLOBAL_STATUS=1
fi
done
fi
fi
for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
NAME=${CONFIG%%.conf}
# Is it an autostarted VPN ?
if test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
AUTOVPN=1
else
if test "x$AUTOSTART" = "xnone" ; then
AUTOVPN=0
else
AUTOVPN=0
for VPN in $AUTOSTART; do
if test "x$VPN" = "x$NAME" ; then
AUTOVPN=1
fi
done
fi
fi
if test "x$AUTOVPN" = "x1" ; then
# If it is autostarted, then it contributes to global status
status_of_proc -p /var/run/openvpn.${NAME}.pid openvpn "VPN '${NAME}'" || GLOBAL_STATUS=1
else
status_of_proc -p /var/run/openvpn.${NAME}.pid openvpn "VPN '${NAME}' (non autostarted)" || true
fi
done
else
# We just want status for specified VPNs.
# Returns success if all specified VPNs are defined and running
while shift ; do
[ -z "$1" ] && break
NAME=$1
if test -e $CONFIG_DIR/$NAME.conf ; then
# Config exists
status_of_proc -p /var/run/openvpn.${NAME}.pid openvpn "VPN '${NAME}'" || GLOBAL_STATUS=1
else
# Config does not exist
echo "VPN '$NAME': missing $CONFIG_DIR/$NAME.conf file !"
GLOBAL_STATUS=1
fi
done
fi
exit $GLOBAL_STATUS
;;
*)
echo "Usage: $0 {start|stop|reload|restart|force-reload|cond-restart|soft-restart|status}" >&2
exit 1
;;
esac

exit 0

# vim:set ai sts=2 sw=2 tw=0:

Danach testen ob alles funktioniert mit

/etc/init.d/openvpn start

und zum Schluss noch in der Datei /etc/rc.conf bei

cfg_services="mcapre hostname filesystems syslog wireless network date telnetd dropbear mcastart openvpn".

Ein Nachteil ist, dass das Ci-Menü jetzt die VPN Netzwerk Konfiguration anzeigt.

Grüsse Klaus

@ dirtyharry123 kannst Du bitte wenn Du ein neuses Image bauen solltest für das MCA auch den tun Treiber mit einbinden?

@ kasi45 sorry das es etwas länger gedauert hat, ich wollte sicher sein dass ich nix vergesse
 
Zurück
Oben