1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Talk MCA OpenVPN installieren! Wie?

Dieses Thema im Forum "Matrix CAM Air" wurde erstellt von blindflug, 11. Oktober 2013.

  1. blindflug
    Offline

    blindflug Newbie

    Registriert:
    17. August 2009
    Beiträge:
    9
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hallo Leute,

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?


    Habe mir jetzt ein MCA zugelegt. Das MCA hat als Frimware

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?

    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
     
    #1
  2. phantom

    Nervigen User Advertisement

  3. dirtyharry123
    Offline

    dirtyharry123 Freak

    Registriert:
    31. Juli 2012
    Beiträge:
    230
    Zustimmungen:
    129
    Punkte für Erfolge:
    0
    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
     
    #2
  4. blindflug
    Offline

    blindflug Newbie

    Registriert:
    17. August 2009
    Beiträge:
    9
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    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
     
    #3
  5. kasi45
    Offline

    kasi45 Ist gelegentlich hier

    Registriert:
    7. Mai 2010
    Beiträge:
    72
    Zustimmungen:
    33
    Punkte für Erfolge:
    18
    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
     
    #4
  6. blindflug
    Offline

    blindflug Newbie

    Registriert:
    17. August 2009
    Beiträge:
    9
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    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
     
    #5
  7. vdrschlucke
    Offline

    vdrschlucke Meister

    Registriert:
    15. Mai 2010
    Beiträge:
    829
    Zustimmungen:
    196
    Punkte für Erfolge:
    0
    Ort:
    unterm dach
    AW: MCA OpenVPN installieren! Wie?

    openvpn auf dem mca wäre ne feine sache!

    hab folgendes gefunden, vlt kommst du damit schon weiter:

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?


    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.
     
    #6
  8. blindflug
    Offline

    blindflug Newbie

    Registriert:
    17. August 2009
    Beiträge:
    9
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    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
     
    #7
  9. vdrschlucke
    Offline

    vdrschlucke Meister

    Registriert:
    15. Mai 2010
    Beiträge:
    829
    Zustimmungen:
    196
    Punkte für Erfolge:
    0
    Ort:
    unterm dach
    #8
  10. kasi45
    Offline

    kasi45 Ist gelegentlich hier

    Registriert:
    7. Mai 2010
    Beiträge:
    72
    Zustimmungen:
    33
    Punkte für Erfolge:
    18
    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:
     
    #9
  11. vdrschlucke
    Offline

    vdrschlucke Meister

    Registriert:
    15. Mai 2010
    Beiträge:
    829
    Zustimmungen:
    196
    Punkte für Erfolge:
    0
    Ort:
    unterm dach
    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*"

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?

     
    Zuletzt bearbeitet: 24. Oktober 2013
    #10
  12. hcsaibot
    Offline

    hcsaibot Ist oft hier

    Registriert:
    22. Juli 2009
    Beiträge:
    148
    Zustimmungen:
    19
    Punkte für Erfolge:
    18
    Beruf:
    Student
    Ort:
    127.0.0.1
    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
    
     
    #11
  13. klaus_j
    Offline

    klaus_j Newbie

    Registriert:
    1. November 2010
    Beiträge:
    20
    Zustimmungen:
    4
    Punkte für Erfolge:
    3
    AW: MCA OpenVPN installieren! Wie?

    Hallo,

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

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?




    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
     
    #12
    piclab und vdrschlucke gefällt das.

Diese Seite empfehlen