Openvpn Client über IPKG

Status
Für weitere Antworten geschlossen.

Nomind

Benutzer
Mitglied seit
17. Mai 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hey Leute,

ich würde gerne meine 413+ als Openvpn Client über ipkg einrichten,

ich habe zuerst über Systemsteuerung/VPN/ eine Openvpn Verbindung erfolgreich hergestellt und die Option "Anderen Netzwerkgeräten ermöglichen,
Verbindung über die Internetverbindung dieses Synology Servers herzustellen" aktiviert, jedoch sind die Einstellmöglichkeiten sehr begrenzt!

Wenn beispielsweise meine Openvpn Server mehr als 6 min nicht erreichbar ist, bricht die 413+ den Verbindungsversuch ab und es erscheint die Fehlermeldung
"Failed to redial VPN profile []"

Jetzt hab ich mir gedacht ich könnte doch eine openvpn Verbindung über ssh (putty) mit "openvpn --config openvpn.conf" erstellen bei der auch die option "keepalive 30 120" berücksichtigt wird.

also schnell eine openvpn.conf geschrieben und verbunden, funktioniert auch, aber ich komm mit den anderen Geräten im Netzwerk nicht ins Zielnetz,

Die Option "Anderen Netzwerkgeräten ermöglichen, Verbindung über die Internetverbindung dieses Synology Servers herzustellen" bewirkt in der original vpndatei (/usr/syno/etc/synovpnclient/openvpn/ovpn_o1368813544.conf)
den Eintrag unter [Syno] nat=yes

nachdem das aber kein openvpn Befehl ist, weiß ich nicht genau was der tut?

kann mir da wer helfen?

Config:

Rich (BBCode):
dev tun
tls-client

remote YOUR_SERVER_IP 1194

pull

proto udp

script-security 2

ca ca.crt

comp-lzo

reneg-sec 0

auth-user-pass pass

keepalive 30 120

gr€€z Nomind
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Hallo Nomind,

das Problem das Du hast ist relativ einfach. Die anderen Geräte im Netztwerk kennen die Route zu dem Zielnetzwerk nicht. Ich denke mal Du wirst wahrscheinlich einen Router in deinem Netzwerk verwenden der wahrscheinlich dann auch als Standard-Gateway in deinen Geräten eingetragen ist. Falls dem so ist, trage dort eine statische Route zum Zielnetz mit der IP deiner DS ein.

Gruß Frank
 

Nomind

Benutzer
Mitglied seit
17. Mai 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hallo fpo4711,

diese Route hab ich schon eingetragen, wie gesagt über den Systemsteuerung/VPN/ Zugang funktioniert der Tunnel wunderbar,

ich glaube es liegt eher am iptable der NAS, der beim manuellen Verbinden nicht richtig konfiguriert wird.

lg
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Hallo,

ich kann nur soviel dazu sagen, das ich vor kurzem gerade eine Konfiguration bei einem Kunden umgesetzt habe wo sich zwei DS per VPN (openVPN) mit einander verbunden haben und hier jeder aus dem einem mit dem anderen Subnetz kommunizieren konnte. Überprüf doch die Route einfach mal mit tracert. Da die Synology Lösung von openVPN nur tun-device unterstützt kannst Du ja problemlos den Weg verfolgen.

Gruß Frank
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Nur zur Sicherheit noch folgende Frage. Du versuchst dich aus dem Subnetz des Clienten mit dem Server zu verbinden. Anders herrum ist es nämlich schwieriger zu konfigurieren. Hab ich gerade in einem anderen Thread beschrieben.

Gruß Frank
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Sorry das kommt hier stückchenweise. Hab's zu spät gelesen. Warum eigentlich IPKG. Die DS bringt doch alles mit. Schau Dir doch mal die configs der DS an. Du brauchst hier noch Angaben zu route bzw. iroute. Oder aber nimm die Lösung von Synology.

Gruß Frank
 

Nomind

Benutzer
Mitglied seit
17. Mai 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hallo Frank,

ja ich versuch aus subnetz des Client auf das subnetz des Servers zuzugreifen,

Naja ipkg deswegen weil ich einfach ipkg install openvpn nochmal drüberlaufen lies weil er irgendwie vorher das mit dem Tunneladapter nicht richtig machen wollte, hier brachte dann /sbin/insmod /lib/modules/tun.ko die Lösung,

die Lösung wie schon im ersten Beitrag gepostet, bricht nach 6 min Serversuche zusammen, das will ich vermeiden, der Tunnel selber funktioniert mit der Synology Lösung einwandfrei.

lg
 

Nomind

Benutzer
Mitglied seit
17. Mai 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Bezüglich Tracert, ich hab direkt bei meinem PC die route für das subnetz auf die ip der NAS als standardgateway eingetragen, aber irgendwie schleift die NAS das nicht durch

lg
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Hallo Nomind,

hab das zwar noch nicht gehabt das es nicht aktiviert war, aber aktivieren kannst Du das Routing auf der DS mit

Rich (BBCode):
echo 1 > /proc/sys/net/ipv4/ip_forward

In der Serverconfig der DS sollte sowas wie push "route ....." sowohl für den Tunnel als auch für das Subnetz des VPN-Servers stehen.

Gruß Frank
 

Nomind

Benutzer
Mitglied seit
17. Mai 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
echo 1 > /proc/sys/net/ipv4/ip_forward

hab ich auch schon versucht, bringt keine verbesserung....

Rich (BBCode):
push "route 192.168.3.0 255.255.255.0"
push "route 10.6.0.0 255.255.255.0"
dev tun

management 127.0.0.1 1195

server 10.6.0.0 255.255.255.0


dh /var/packages/VPNCenter/target/etc/openvpn/keys/dh1024.pem
ca /var/packages/VPNCenter/target/etc/openvpn/keys/ca.crt
cert /var/packages/VPNCenter/target/etc/openvpn/keys/server.crt
key /var/packages/VPNCenter/target/etc/openvpn/keys/server.key

max-clients 5

comp-lzo

persist-tun
persist-key

verb 3

#log-append /var/log/openvpn.log

keepalive 10 60
reneg-sec 0

plugin /var/packages/VPNCenter/target/lib/radiusplugin.so /var/packages/VPNCente
client-cert-not-required
username-as-common-name
duplicate-cn

so schaut die server conf aus

lg
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Also das sieht gut aus sofern das Subnetz 192.168.3.0 das vom Server ist. Überprüf doch mal die Routen auf der DS. Der push sollte Dir die Routen auf der DS setzen. Hier mal ein Beispiel vor und nach dem Verbindungsaufbau sollte bei Dir dann ähnlich aussehen.

Rich (BBCode):
~ > route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         fritz.box       0.0.0.0         UG    0      0        0 eth0
192.168.192.0   *               255.255.255.0   U     0      0        0 eth0
~ > route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         fritz.box       0.0.0.0         UG    0      0        0 eth0
10.8.0.0        10.8.0.5        255.255.255.0   UG    0      0        0 tun0
10.8.0.5        *               255.255.255.255 UH    0      0        0 tun0
192.168.0.0     10.8.0.5        255.255.255.0   UG    0      0        0 tun0
192.168.192.0   *               255.255.255.0   U     0      0        0 eth0
~ >

Das Subnetz 192.168.0.0 ist in dem Beispiel das des VPN Servers und 192.168.192.0 das Clientnetz.

.... und gute Nacht

Das sind die Routen auf der Clientseite.
 

Nomind

Benutzer
Mitglied seit
17. Mai 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Also wenn ich über das Webif VPN aktiviere

kommt die route

Rich (BBCode):
NASI> route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.6.0.8        *               255.255.255.255 UH    0      0        0 tun0
192.168.3.0     10.6.0.8        255.255.255.0   UG    0      0        0 tun0
192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
default         OpenWrt.lan     0.0.0.0         UG    0      0        0 eth0

wenn VPN deaktiviert ist schaut es so aus
Rich (BBCode):
NASI> route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
default         OpenWrt.lan     0.0.0.0         UG    0      0        0 eth0

und VPN über "openvpn openvpn.ovpn", wieder gleich
Rich (BBCode):
NASI> route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.6.0.8        *               255.255.255.255 UH    0      0        0 tun0
192.168.3.0     10.6.0.8        255.255.255.0   UG    0      0        0 tun0
192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
default         OpenWrt.lan     0.0.0.0         UG    0      0        0 eth0

das Server Subnetz ist 192.168.3.0/24
das Client Subnetz ist 192.168.2.0/24
das virtuelle OVPN Subnetz ist 10. 6.0.0/24

Ich habe auch mittlerweile einen ccd Ordner am Server erstellt und mir ein Openvpn Client Profil eingerichtet sodass ich eine fixe IP habe, so wie du es in deinem anderen Posting beschrieben hast (vielen Dank dafür :) )



lg
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Also die Routen sehen gut aus. Hätte ich auch schon vorher dran denken können. Firewall?
Vieleicht auch auf dem Router oder PC?
Schau DIr doch auch mal deine iptables an.

Gruß Frank
 

Nomind

Benutzer
Mitglied seit
17. Mai 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
UPDATE!!!

ich habs geschafft :)

also ich hab im ccd Ordner beim Profile noch den Standardgateway der Box eingeben müssen :))

also

ifconfig-push *Statische IP der Clients* *IP des Servers (standard 10.6.0.1))*


jetzt noch einen Dienst schreiben der mir bei Systemstart die VPN Verbindung erstellt und fertig,


Vielen Danke Frank, ohne dich hätt ich das sicher nicht so schnell gelöst!!!!!

:)
 
Zuletzt bearbeitet:

Nomind

Benutzer
Mitglied seit
17. Mai 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Vollständigshalber noch das Script :)

Code:
#!/bin/sh
 
case $1 in
        start)
                # Enable ipv4_forwarding
                echo 1 > /proc/sys/net/ipv4/ip_forward
 
                # Create the necessary file structure for /dev/net/tun
                if ( [ ! -c /dev/net/tun ] ); then
                        if ( [ ! -d /dev/net ] ); then
                                mkdir -m 755 /dev/net
                        fi
                        mknod /dev/net/tun c 10 200
                fi
 
                # Load the tun module if not already loaded
                if ( !(lsmod | grep -q "^tun") ); then
                        insmod /lib/modules/tun.ko
                fi
 
                # Start the openvpn service
                /opt/sbin/openvpn --daemon --cd /root/ovpn/openvpn --config openvpn.ovpn --writepid /var/run/openvpn.pid
                echo "Started Optware openvpn-client"
                ;;
        stop)
                # Kill the openvpn service
                if [ -f /var/run/openvpn.pid ] ; then
                        # Compare the pidfile and the current pid
                        [ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] && \
                                kill -TERM `pidof openvpn`
                else
                        echo "Stopping Optware openvpn-client: No pidfile found"
                fi
 
                # Unload the tun module
                if ( (lsmod | grep -q "^tun") ); then
                        rmmod -f tun
                fi
 
                echo "Stopping Optware openvpn-client"
                ;;
        status)
                # Check the status
                if [ -f /var/run/openvpn.pid ] ; then
                        [ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] && \
                        echo "openvpn-client is running"
                else
                        echo "openvpn-client is stopped"
                fi
                ;;
        reload)
                if [ -f /var/run/openvpn.pid ] ; then
                        [ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] && \
                                kill -HUP `pidof openvpn`
                        echo "Reloading Optware openvpn-client"
                fi
                ;;
        restart)
                $0 stop
                sleep 4
                $0 start
                ;;
esac

einfach unter S99Irgendwas.sh in /usr/syno/etc/rc.d/ kopieren

gr€€z
 

Nomind

Benutzer
Mitglied seit
17. Mai 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Und nochmal ich :(

nachdem neustart der Box (um das script zu testen) geht wieder nix, allerdings hab ich jetzt die Fehlermeldung wenn ich openvpn ohne deamon starte bemerkt

route: SIOCADDRT: File exists
Sun Jun 16 18:05:11 2013 ERROR: Linux route add command failed: external program exited with error status: 1

irgendwelche ideen?

lg
 

Nomind

Benutzer
Mitglied seit
17. Mai 2013
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
So Update:

Für alle die das selbe Problem haben oder haben werden, hier die auflösung!!

Der Neustart der "Serverbox" bewirkte ein ändern der /ccd/profile Datei,

mann muss wie Frank schon erwähnte in der /volume1/@appstore/VPNCenter/etc/openvpn/radiusplugin.cnf Datei

Code:
overwriteccfiles=false

setzen.

Das neue Startscript schaut so aus!


Code:
#!/bin/sh

KERNEL_MODULES="x_tables.ko ip_tables.ko iptable_filter.ko nf_conntrack.ko nf_defrag_ipv4.ko nf_conntrack_ipv4.ko nf_nat.ko iptable_nat.ko ipt_REDIRECT.ko xt_multiport.ko xt_tcpudp.ko xt_state.ko ipt_MASQUERADE.ko tun.ko"
SERVICE="ovpnc"


 reverse_modules() {
        local modules=$1
        local mod
        local ret=""

        for mod in $modules; do
            ret="$mod $ret"
        done

        echo $ret
}

unload_module() {
        local modules=`reverse_modules "${KERNEL_MODULES}"`
        /usr/syno/bin/iptablestool --rmmod $SERVICE $modules
}

 
case $1 in
        start)
                # Enable ipv4_forwarding
                echo 1 > /proc/sys/net/ipv4/ip_forward
 
                # Create the necessary file structure for /dev/net/tun
                if ( [ ! -c /dev/net/tun ] ); then
                        if ( [ ! -d /dev/net ] ); then
                                mkdir -m 755 /dev/net
                        fi
                        mknod /dev/net/tun c 10 200
                fi
 
                # Load the modules if not already loaded and make nat
				/usr/syno/bin/iptablestool --insmod $SERVICE ${KERNEL_MODULES}
				iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

 
                # Start the openvpn service
                /opt/sbin/openvpn --daemon --cd ****HIER PFAD ZUR CONFIG EINGEBEN*** --config ****HIER CONFIG EINGEBEN*** --writepid /var/run/openvpn.pid
                echo "Started Optware openvpn-client"
                ;;
        stop)
                # Kill the openvpn service
                if [ -f /var/run/openvpn.pid ] ; then
                        # Compare the pidfile and the current pid
                        [ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] && \
                                kill -TERM `pidof openvpn`
                else
                        echo "Stopping Optware openvpn-client: No pidfile found"
                fi
 
                # Unload the tun module
				sleep 2	
				unload_module;
				;;
        unload)
				unload_module;
				;;
 
                echo "Stopping Optware openvpn-client"
                ;;
        status)
                # Check the status
                if [ -f /var/run/openvpn.pid ] ; then
                        [ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] && \
                        echo "openvpn-client is running"
                else
                        echo "openvpn-client is stopped"
                fi
                ;;
        reload)
                if [ -f /var/run/openvpn.pid ] ; then
                        [ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] && \
                                kill -HUP `pidof openvpn`
                        echo "Reloading Optware openvpn-client"
                fi
                ;;
        restart)
                $0 stop
                sleep 4
                $0 start
                ;;
esac

Also die NAS verbindet sich mit /usr/syno/etc/synovpnclient/scripts/ovpnc.sh

hierbei werden mehrere module geladen, die ich nun in meinem Startscript mitgeladen habe,


in der original Openvpn konfiguration sorgt das "nat=yes"

lediglich für den Eintrag:

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

das sich nun ebenfalls in meinem Startscript befindet.

Happy NASHacking :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat